/*! \file synapse.i
    \brief Synapse wrapper for SWIG (Java)

	'Synapse' Data Sharing System | Flinders University | Martin Luerssen | 2009+
*/

%module Synapse

%include "arrays_java.i"

%{
#include "../Synapse/synapse.h"
#include "../Synapse/synchrony.h"
%}

%include "../Synapse/synapse.h"
%include "../Synapse/synchrony.h"

%rename(Assign) operator=;
%rename(At) operator[];
%ignore *::WaitForMatch;
%ignore *::Get;
%ignore *::ReadNow;
%ignore *::Read;
%ignore *::ReadWhenNew;
%ignore *::Buffer;
%ignore *::ReadAllAtTime;
%ignore *::ReadAllAtSlot;
%ignore *::ListSlotTimes;
%ignore *::ListSlotCounts;

%template(BoolSynapse) Synapse<bool>;
%template(CharSynapse) Synapse<signed char>;
%template(UCharSynapse) Synapse<unsigned char>;
%template(ShortSynapse) Synapse<short>;
%template(UShortSynapse) Synapse<unsigned short>;
%template(Int32Synapse) Synapse<long>;
%template(UInt32Synapse) Synapse<unsigned long>;
%template(Int64Synapse) Synapse<long long>;
%template(UInt64Synapse) Synapse<unsigned long long>;
%template(FloatSynapse) Synapse<float>;
%template(DoubleSynapse) Synapse<double>;
%template(ByteSynchroSample) SynchroSample<unsigned char>;
%template(ByteSynchrony) Synchrony<unsigned char>;

